<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of NuevaOrdenDeServicio
 *
 * @author kristian
 */
class Form_NuevaOrdenDeServicio extends Zend_Form{

    public function  __construct($listaClientes,$cliente,$ordenDeServicio = null) {
        parent::__construct();
        
        
        
        $this->setName('orden');
        $this->setMethod('post');

        $editar = ($ordenDeServicio !== null);
        if ($editar){ // si se quiere editar
            $descripcionEquipos = $ordenDeServicio->getDescripcionEquipos();
            $cliente = $ordenDeServicio->getCliente()->getPK();
            $fallasInformadas = $ordenDeServicio->getDetalleFallasInformadas();
            $serviciosRealizados = $ordenDeServicio->getServiciosRealizados();


            $submitName = 'Guardar';
        }
        else { // si se quiere crear un nueva localidad
            list($clientKey,$clientName) = each($listaClientes);

            $descripcionEquipos = '';
            $fallasInformadas = '';
            $serviciosRealizados = '';

            $submitName = 'Agregar';

            if ($cliente == 0){
                $cliente = $clientKey;
            }
        }


        // filtros
        $trim = new Zend_Filter_StringTrim();
        $notHtml = new Zend_Filter_StripTags();
        
        
        // validadores
        $notEmpty = new Zend_Validate_NotEmpty();
        $notEmpty->setMessage('Este campo no puede ser dejado en blanco');

        $valLongitudDE = new Zend_Validate_StringLength();
        $valLongitudDE->setMax(500);

        $valLongitudFI = new Zend_Validate_StringLength();
        $valLongitudFI->setMax(500);

        $valLongitudSR = new Zend_Validate_StringLength();
        $valLongitudSR->setMax(500);

        // crear la pantalla
        $slClientes = new Zend_Form_Element_Select('clientes');
        $slClientes->setLabel('Cliente: ');
        $slClientes->setMultiOptions($listaClientes);
        $slClientes->setValue($cliente);
        $slClientes->setRequired(true);

        $txtDescripcionEquipos = new Zend_Form_Element_Textarea('descripcionEquipos');
        $txtDescripcionEquipos->setLabel('Descripcion de equipos involucrados: ');
        $txtDescripcionEquipos->setValue($descripcionEquipos);
        $txtDescripcionEquipos->setRequired(true);
        $txtDescripcionEquipos->addFilter($trim);
        $txtDescripcionEquipos->addFilter($notHtml);
        $txtDescripcionEquipos->addValidator($notEmpty);
        $txtDescripcionEquipos->addValidator($valLongitudDE);

        $txtDetallesFallasInformadas = new Zend_Form_Element_Textarea('fallasInformadas');
        $txtDetallesFallasInformadas->setLabel('Fallas informadas: ');
        $txtDetallesFallasInformadas->setValue($fallasInformadas);
        $txtDetallesFallasInformadas->setRequired(true);
        $txtDetallesFallasInformadas->addFilter($trim);
        $txtDetallesFallasInformadas->addFilter($notHtml);
        $txtDetallesFallasInformadas->addValidator($notEmpty);
        $txtDetallesFallasInformadas->addValidator($valLongitudFI);

        $txtServiciosRealizados = new Zend_Form_Element_Textarea('serviciosRealizados');
        $txtServiciosRealizados->setLabel('Servicios realizados: ');
        $txtServiciosRealizados->setValue($serviciosRealizados);
        $txtServiciosRealizados->addFilter($trim);
        $txtServiciosRealizados->addFilter($notHtml);
        $txtServiciosRealizados->addValidator($notEmpty);
        $txtServiciosRealizados->addValidator($valLongitudSR);

        if ($editar){
            $slClientes->setAttrib('readonly', 'true');
            $txtDescripcionEquipos->setAttrib('readonly', 'true');
            $txtDetallesFallasInformadas->setAttrib('readonly', 'true');
        }
        else {
            $partes = explode('/', 'servicio/nuevo');

            $temp = implode('-', $partes);

            $destino = urlencode($temp);

            $btnNoCliente = new Zend_Form_Element_Button('noCliente');
            $btnNoCliente->setAttrib('onclick', "window.location = '/index.php/cliente/nuevo/destino/" . $destino . "'");
            $btnNoCliente->setLabel('No encuentro al cliente');
        }

        $submit = new Zend_Form_Element_Submit('submit');
        $submit->setLabel($submitName);
        $submit->setAttrib('onclick', "return confirm('Por favor, confirme')");

        $reset = new Zend_Form_Element_Reset('reset');
        $reset->setLabel('Reiniciar');

        $this->addElement($slClientes);
        if (!$editar) $this->addElement($btnNoCliente);
        $this->addElement($txtDescripcionEquipos);
        $this->addElement($txtDetallesFallasInformadas);
        $this->addElement($txtServiciosRealizados);
        $this->addElement($submit);
        $this->addElement($reset);
    }

}
?>
